{"path":"src/app/api/admin/admins/[id]/route.ts","size":1445,"locked":false,"binary":false,"truncated":false,"content":"import { createClient } from \"@/lib/supabase/server\";\nimport { supabaseAdmin } from \"@/lib/supabase/admin\";\nimport { NextResponse } from \"next/server\";\n\nexport const dynamic = \"force-dynamic\";\n\nexport async function DELETE(\n  request: Request,\n  { params }: { params: { id: string } }\n) {\n  if (!supabaseAdmin) {\n    return NextResponse.json({ error: \"Database not connected\" }, { status: 503 });\n  }\n\n  const supabase = await createClient();\n  if (!supabase) return NextResponse.json({ error: \"Database not connected\" }, { status: 503 });\n\n  const { data: { user } } = await supabase.auth.getUser();\n  if (!user) return NextResponse.json({ error: \"Unauthorized\" }, { status: 401 });\n\n  const { data: admins } = await supabaseAdmin\n    .from(\"admin_users\")\n    .select(\"user_id, created_at\")\n    .order(\"created_at\", { ascending: true });\n\n  const isFirstAdmin = admins && admins.length > 0\n    ? admins[0].user_id === user.id\n    : true;\n\n  if (!isFirstAdmin) {\n    return NextResponse.json({ error: \"Only the first admin can demote others\" }, { status: 403 });\n  }\n\n  if (params.id === user.id) {\n    return NextResponse.json({ error: \"You cannot demote yourself\" }, { status: 400 });\n  }\n\n  const { error } = await supabaseAdmin\n    .from(\"admin_users\")\n    .delete()\n    .eq(\"user_id\", params.id);\n\n  if (error) {\n    return NextResponse.json({ error: error.message }, { status: 500 });\n  }\n\n  return NextResponse.json({ success: true });\n}\n"}